<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  <script>

    // JS内置了一些构造函数或对象: Function / Object / Array / String / Reg / Date / Math

    /* 
      function Function () {}
      Function.prototype.call = function () {}
      function Object () {}
      Object.prototype.toString = function () {}
      JS引擎在执行我们的代码前， 先执行它内部的代码： 定义了一些构造函数
    */

    // console.log(Function)
    // console.log(Object)

    function Foo () {}
    const f1 = new Foo()
    const f2 = new Foo()
    const o1 = new Object()
    const o2 = {}

    /* 在产生Function的原型对象后， 给它添加了__proto__属性， 值为Object.prototype的值 */
    console.log(Function.prototype.__proto__===Object.prototype) // true
    console.log(Function.prototype)
    
    // Function.prototype.__proto__ = Object.prototype
  </script>
</body>
</html>